﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Microsoft.Xna.Framework;

namespace Oroboros.Objects
{
    public class Vector3Wrapper : INotifyPropertyChanged
    {
        private Vector3 m_Vector3;
        public event PropertyChangedEventHandler PropertyChanged;
        public void Changed(string n)
        {
            if (!string.IsNullOrEmpty(n))
                PropertyChanged(this, new PropertyChangedEventArgs(n));
        }

        public Vector3Wrapper()
        {
            this.m_Vector3 = Vector3.Zero;
        }

        public Vector3Wrapper(Vector3 vector)
        {
            this.m_Vector3 = vector;
        }

        public Vector3Wrapper(float p_x, float p_y, float p_z)
        {
            this.m_Vector3 = new Vector3(p_x, p_y, p_z);
        }

        public float X { get { return m_Vector3.X; } set { Changed("X"); m_Vector3.X = value; } }
        public float Y { get { return m_Vector3.Y; } set { Changed("Y"); m_Vector3.Y = value; } }
        public float Z { get { return m_Vector3.Z; } set { Changed("Z"); m_Vector3.Z = value; } }
    }
}
